Keyword/reserved word extension allow code to be much cleaner by using an existing class in the standard frameworks without subclassing them.
Is there a keyword in Dart that allows the same behavior?
extension Double {
var mm: Double { return self / 1_000.0 }
}
let oneInch = 25.4.mm
print("One inch is \(oneInch) meters")
They are finally here 🥳
Since dart version 2.6 (not 100% sure).
class Foo { printFoo() { print("Foo"); } } extension Bar on Foo { printBar() { print("Bar"); } } void main() { final foo = Foo(); foo.printFoo(); foo.printBar(); }fingerprints:
foo
Pub
You can try it on dart pad.
Extension methods are currently being implemented into the language.
https://github.com/dart-lang/language/projects/1#card-18758939
Specifications document
TL;DR: Sadly, Dart doesn't support extension methods.
In the Dart repository, there's an issue about how to add new functionality to existing types for that. More specifically, there are issues for extension methods and extension types.
Of course, you can always use new classes that extend existing classes introduce new functionality on top of them.
However, that only works for non-primitive classes, so let's hope for the best.
Your best shot probably is to upvote the issues linked above.